home *** CD-ROM | disk | FTP | other *** search
- 1000 REM *** ULTRABOOT MAKER
- 1010 POKE 53280,6:POKE 53281,6
- 1020 POKE 55,0:POKE 56,37:CLR
- 1030 DIM M%(5,20),MF%(9),ME%(9):MF%(0)=999
- 1040 PRINT "[147] [154] *** [213]LTRABOOT [205]AKER ***"
- 1050 PRINT "* (C) 1992 [205]ARTIN [208]FOST"
- 1060 PRINT " *** MAXIMALE [198]ILELAENGE : 104 [194]LOECKE"
- 1070 PRINT:PRINT "[213]LTRABOOT [205]AKER ERSTELLT AUF [196]ISKETTE"
- 1080 PRINT "EIN [213]-[198]ILE, WAS SEHR SCHNELL EIN BE -"
- 1090 PRINT "STIMMTES [208]ROGRAMM LAEDT ."
- 1100 PRINT
- 1110 REM *** FILE LADEN
- 1120 PRINT " *** [208]ROGRAMM LADEN"
- 1130 INPUT "==> [208]ROGRAMMNAME = ";N$
- 1140 PRINT "==> [196]ISKETTE MIT '";N$;"' EINLEGEN !"
- 1150 GET A$:IF A$="" THEN 1150
- 1160 OPEN 1,8,15,"I":GOSUB 2610
- 1170 OPEN 2,8,0,N$:GOSUB 2610
- 1180 PRINT " '";N$;"' WIRD GELESEN ."
- 1190 GET#2,A$,A$
- 1200 FOR I=53120 TO 53212
- 1210 READ D:C=C+D:POKE I,D
- 1220 NEXT I
- 1230 IF C-12129 THEN PRINT "??? [196]ATA-[198]EHLER !":GOTO 2550
- 1240 SYS 53120
- 1250 EA=PEEK(174)+256*PEEK(175)+1
- 1260 BL=INT((EA-9474)/254)+1
- 1270 PRINT " [194]LOECKE : ";BL
- 1280 PRINT " [194]YTES :";EA-9473
- 1290 IF BL>104 THEN PRINT "??? [198]ILE ZU LANG !":GOTO 2550
- 1300 CLOSE 2
- 1301 OPEN 2,8,2,N$+"+":I=0
- 1302 INPUT#1,E:IF E THEN 1309
- 1303 PRINT " *** [213]LTRABOOT [205]ENUE-[198]ILE !"
- 1304 INPUT#2,MF%(I),ME%(I):I=I+1
- 1305 IF ST=0 THEN 1304
- 1309 CLOSE 2
- 1310 PRINT "==> [196]ISKETTE, DIE [213]LTRABOOT ERHALTEN"
- 1320 PRINT " SOLL, EINLEGEN !"
- 1330 GET A$:IF A$="" THEN 1330
- 1340 OPEN 2,8,2,"#1":GOSUB 2610
- 1350 REM *** FORMATIEREN
- 1360 PRINT " *** [198]ORMATIERUNG"
- 1370 GOSUB 2760
- 1380 T=36:I=0
- 1390 DE=0:GS=17:SD=5
- 1400 IF BL>84 THEN DE=32:GS=18:SD=5
- 1410 IF BL>89 THEN DE=64:GS=19:SD=5
- 1420 IF BL>94 THEN DE=96:GS=21:SD=6
- 1430 PRINT#2,CHR$(DE)+CHR$(GS);
- 1440 PRINT " [211]EKTOREN PRO [212]RACK :";GS
- 1450 PRINT#1,"M-E"+CHR$(23)+CHR$(4)+CHR$(T);
- 1460 PRINT " [212]RACK";T;"WIRD FORMATIERT .[145]"
- 1470 GOSUB 2610
- 1480 I=I+GS:IF I>BL THEN 1500
- 1490 T=T+1:GOTO 1450
- 1500 PRINT " [198]ORMATIERUNG ABGESCHLOSSEN ."
- 1510 PRINT " *** [197]INTRAG IM [196]IRECTORY"
- 1520 PRINT " [197]IN FREIER [208]LATZ IM [196]IRECTORY WIRD"
- 1530 PRINT " GESUCHT ."
- 1540 REM *** FREIE BLOECKE FINDEN
- 1550 PRINT#1,"U1 2 0 18 0":GOSUB 2610
- 1560 PRINT#1,"B-P 2 73"
- 1570 GET#2,A$:IF A$="" THEN A$=CHR$(0)
- 1580 I=0
- 1590 IF (ASC(A$) AND 2^I) = 0 THEN M%(0,S)=1
- 1600 S=S+1:IF S>18 THEN 1640
- 1610 I=I+1: IF I<8 THEN 1590
- 1620 GOTO 1570
- 1630 REM *** FREIEN EINTRAG FINDEN
- 1640 S=1
- 1650 PRINT#1,"U1 2 0 18";S:GOSUB 2610
- 1660 I=2
- 1670 PRINT#1,"B-P 2";I
- 1680 GET#2,A$:IF A$="" THEN 1730
- 1690 I=I+32:IF I<227 THEN 1670
- 1700 PRINT#1,"B-P 2 1"
- 1710 GET#2,A$:IF A$<>CHR$(255) THEN S=ASC(A$):GOTO 1650
- 1720 NS=S+3:I=0:GOSUB 2670
- 1730 ND=NS:NS=18:GOSUB 2670
- 1740 PRINT#1,"B-A:0 18";NS
- 1750 IF I THEN 1870
- 1760 REM *** NEUER DIR-BLOCK
- 1770 PRINT#1,"B-A:0 18";ND
- 1780 PRINT#1,"B-P 2 0"
- 1790 PRINT#2,CHR$(18)+CHR$(ND);
- 1800 PRINT#1,"U2 2 0 18";S:GOSUB 2610
- 1810 FOR I=0 TO 254
- 1820 PRINT#2,CHR$(0);
- 1830 NEXT I
- 1840 PRINT#2,CHR$(255);
- 1850 I=2:S=ND
- 1860 REM *** FILE EINTRAGEN
- 1870 PRINT#1,"B-P 2";I
- 1880 PRINT#2,CHR$(130);
- 1890 PRINT#2,CHR$(18)+CHR$(NS);
- 1900 PRINT#2,"U"+CHR$(160);
- 1910 PRINT#2,LEFT$(N$+" ",14);
- 1920 FOR J=19 TO 29
- 1930 PRINT#2,CHR$(0);
- 1940 NEXT J
- 1950 PRINT#1,"U2 2 0 18";S:GOSUB 2610
- 1960 PRINT " [196]AS [213]-[198]ILE IST EINGETRAGEN IN :"
- 1970 PRINT " [212]RACK : 18"
- 1980 PRINT " [211]EKTOR :";S
- 1990 PRINT " [197]INTRAG :";INT(I/32)+1
- 2000 REM *** U-FILE SCHREIBEN
- 2010 PRINT " *** [213]-[198]ILE SCHREIBEN"
- 2020 GOSUB 2760
- 2030 PRINT#2,CHR$(DE)+CHR$(GS);
- 2040 CLOSE 2
- 2050 OPEN 2,8,2,"#0":GOSUB 2610
- 2060 GOSUB 2760
- 2070 PRINT#1,"B-P 2 207":PRINT#2,CHR$(DE);
- 2080 PRINT " [196]AS [213]-[198]ILE UND [194]OOTPROGRAMM WIRD"
- 2090 PRINT " GESCHRIEBEN IN :"
- 2100 PRINT " [212]RACK : 18"
- 2110 PRINT " [211]EKTOR :";NS
- 2120 PRINT#1,"U2 2 0 18";NS:GOSUB 2610
- 2130 PRINT " [202]ETZT WIRD DAS [196]ISKETTENBOOTPROGRAMM"
- 2140 PRINT " UND '";N$;"' GESCHRIEBEN ."
- 2150 REM *** BLOCK 36/0 SCHREIBEN
- 2160 GOSUB 2760
- 2170 PRINT#1,"B-P 2 10"
- 2180 PRINT#2,CHR$(DE);
- 2190 T=36:S=0:I=0:M%(1,0)=1
- 2200 POKE 174,1:POKE 175,37
- 2210 PRINT#1,"B-P 2 254"
- 2215 BZ=0
- 2220 GOTO 2400
- 2230 REM *** PROGRAMM SCHREIBEN
- 2240 PRINT#1,"B-P 2 0"
- 2250 SYS 53175
- 2260 AD=PEEK(174)+256*PEEK(175)
- 2270 IF AD<EA THEN 2400
- 2280 A=EA-9474-254*INT((EA-9473)/254)
- 2290 E=0:IF (A AND 128)=0 THEN E=1
- 2300 IF (A AND 64)=0 THEN E=E+4
- 2310 IF (A AND 32)=0 THEN E=E+2
- 2320 IF (A AND 16)=0 THEN E=E+8
- 2330 IF (A AND 8)=0 THEN E=E+16
- 2340 IF (A AND 4)=0 THEN E=E+64
- 2350 IF (A AND 2)=0 THEN E=E+32
- 2360 IF (A AND 1)=0 THEN E=E+128
- 2370 PRINT#2,CHR$(E);CHR$(0);
- 2380 GOTO 2480
- 2390 REM *** FREIEN BLOCK FINDEN
- 2400 NS=S+SD:NT=T:C=GS
- 2410 NS=NS+1:IF NS>=GS THEN NS=NS-GS
- 2420 IF M%(NT-35,NS)=0 THEN 2450
- 2430 C=C-1:IF C>0 THEN 2410
- 2440 NT=NT+1:GOTO 2420
- 2450 M%(NT-35,NS)=1
- 2460 REM *** BLOCK SCHREIBEN
- 2461 I=0
- 2462 IF MF%(I)>BZ THEN 2470
- 2463 IF MF%(I)=BZ THEN A=ME%(I):GOTO 2290
- 2464 I=I+1:GOTO 2462
- 2470 PRINT#2,CHR$(NS)+CHR$(NT);
- 2480 PRINT#1,"M-E"+CHR$(36)+CHR$(4)+CHR$(T)+CHR$(S);
- 2490 PRINT " [212]RACK :";T;" [211]EKTOR :";S;"[157] [145]"
- 2500 GOSUB 2610
- 2510 T=NT:S=NS
- 2515 BZ=BZ+1
- 2520 IF AD<EA THEN 2240
- 2530 PRINT:PRINT " ";N$;" BEFINDET SICH AUF [196]ISKETTE ."
- 2540 PRINT " [218]UM [211]TARTEN '[213]' ABSOLUT LADEN ."
- 2550 PRINT#1,"I"
- 2560 CLOSE 2:CLOSE 1
- 2570 POKE 56,160:CLR
- 2580 END
- 2590 :
- 2600 REM *** DISKSTATUS TESTEN
- 2610 INPUT#1,E,E$,ET,ES
- 2620 IF E=0 THEN RETURN
- 2630 PRINT:PRINT "??? [196]ISK-[198]EHLER !"
- 2640 PRINT " ";E;E$;ET;ES
- 2650 GOTO 2550
- 2660 REM *** BLOCK IM DIR. FINDEN
- 2670 C=18
- 2680 IF NS>18 THEN NS=NS-18
- 2690 IF M%(0,NS)=0 THEN 2730
- 2700 NS=NS+1:C=C-1:IF C THEN 2680
- 2710 PRINT "??? [203]EIN [194]LOCK MEHR FREI !"
- 2720 GOTO 2550
- 2730 M%(0,NS)=1
- 2740 RETURN
- 2750 REM *** DATEN LESEN
- 2760 C=0:PRINT#1,"B-P 2 0"
- 2770 READ D:IF D>-1 THEN C=C+D:PRINT#2,CHR$(D);:GOTO 2770
- 2780 IF D+C=0 THEN RETURN
- 2790 PRINT "??? [196]ATA-[198]EHLER !"
- 2800 PRINT " FALSCHE [208]RUEFSUMME :";D
- 2810 GOTO 2550
- 2820 :
- 2830 REM *** LOADSAVEROUTINEN
- 2840 DATA 162,2,32,198,255,160,0,132,174,169,37,133,175,32,207,255,133,4,169,0
- 2850 DATA 162,7,70,4,176,3,29,175,207,202,16,246,230,174,208,2,230,175,145,174
- 2860 DATA 165,144,240,225,76,204,255,1,4,2,8,16,64,32,128,169,54,133,1,162,2,32
- 2870 DATA 201,255,160,0,177,174,32,210,255,200,192,254,144,246,165,174,105,253
- 2880 DATA 133,174,144,2,230,175,169,55,133,1,76,204,255
- 2890 REM *** FORMATIERROUTINE
- 2900 DATA 165,8,133,81,173,65,4,133,67,173,0,28,41,159,13,64,4,141,0,28,76,0
- 2910 DATA 251,32,0,193,162,1,169,10,141,32,6,169,160,141,33,6,169,15,141,34,6
- 2920 DATA 172,5,2,132,8,169,224,133,1,165,1,48,252,201,2,176,1,96,76,10,230
- 2930 DATA -5531
- 2940 REM *** WRITEROUTINE
- 2950 DATA 169,3,133,49,173,0,28,41,159,13,61,4,141,0,28,173,62,4,133,67,165,1
- 2960 DATA 41,2,208,3,76,152,246,169,208,133,1,76,117,245,32,24,193,173,5,2,133
- 2970 DATA 8,173,6,2,133,9,169,226,162,1,134,249,32,125,213,76,153,213,-5930
- 2980 REM *** U-FILE TRACK 18
- 2990 DATA 0,196,36,3,52,3,202,241,237,246,62,241,47,243,102,254,165,244,237,245
- 3000 DATA 169,8,162,226,32,177,255,169,111,32,147,255,189,229,2,32,168,255,232
- 3010 DATA 208,247,32,174,255,173,17,208,41,239,141,17,208,120,169,32,141,0,221
- 3020 DATA 169,1,133,45,169,8,133,46,160,0,169,0,141,0,221,44,0,221,48,251,162
- 3030 DATA 32,234,44,0,221,48,2,38,255,173,0,221,74,74,13,0,221,74,74,13,0,221
- 3040 DATA 74,74,13,0,221,142,0,221,145,45,200,208,210,201,255,240,12,165,45,105
- 3050 DATA 254,133,45,144,198,230,46,208,194,160,254,177,45,101,45,133,45,144,2
- 3060 DATA 230,46,169,199,141,0,221,173,17,208,9,16,141,17,208,88,32,21,253,169
- 3070 DATA 0,32,113,168,76,174,167,77,45,69,5,2,238,13,2,238,20,2,174,73,2,224
- 3080 DATA 44,208,243,189,197,2,157,0,4,202,16,247,76,17,4,169,3,133,49,173,0,28
- 3090 DATA 41,159,9,0,141,0,28,76,209,244,169,36,133,8,74,141,5,28,162,0,134,9
- 3100 DATA 232,134,249,169,224,32,125,213,32,153,213,76,17,3,-27947
- 3110 REM *** LESEROUTINE 36/0
- 3120 DATA 169,4,133,49,173,0,28,41,159,9,0,141,0,28,76,209,244,169,8,133,8,141
- 3130 DATA 0,24,172,255,3,173,254,3,132,6,133,7,169,224,162,0,134,249,32,125,213
- 3140 DATA 32,24,193,32,153,213,120,160,0,173,0,24,74,176,250,185,0,4,162,10,142
- 3150 DATA 0,24,74,74,74,74,166,8,142,0,24,141,0,24,10,41,15,141,0,24,185,0,4,41
- 3160 DATA 15,141,0,24,10,41,15,141,0,24,234,169,8,141,0,24,200,208,201,173,254
- 3170 DATA 4,172,255,4,208,171,169,18,133,6,169,176,88,133,0,165,0,48,252,76,231
- 3180 DATA 235,-12541
- 3190 REM *** ENDE
-